home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Arsenal Files 8
/
The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO
/
pcboard
/
vrs501.zip
/
VRS-M801.PPE
(
.txt
)
< prev
next >
Wrap
PCBoard Programming Language Executable
|
1996-10-08
|
10KB
|
450 lines
;------------------------------------------------------------------------------
; .ss.
; `²²'
; .,sS$Ss,,s$ .,sS$$$Ss. .,sS$Ss,,s$ .ss. .sSs.
; .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
; $$$' .$$$' $$$²Sçsµ²' .$$$' .$$$'.$$$' .$$$' `$$b.
; $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$' ;$$$
; `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
; .sS²°$$$²²°"' d²°'
; .$$² .$$'
; $$$.,d$$'
; `²S$$S²'
;------------------------------------------------------------------------------
; P.P.L.X. 2.OO (C)1996 - Lone Runner / AEGiS CoRP'96
;------------------------------------------------------------------------------
; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
;------------------------------------------------------------------------------
Integer INTEGER001
Integer INTEGER002
Integer INTEGER003
Integer INTEGER004
Integer INTEGER005
Integer INTEGER006
Integer INTEGER007
Integer INTEGER008
String STRING001
String STRING002
String STRING003
String STRING004
String STRING005
String STRING006
String STRING007
String STRING008
;------------------------------------------------------------------------------
Goto LABEL001
End
If (0 == 0) STRING001 = "NO"
If (0 == 1) STRING001 = "YES"
EndFunc
:LABEL001
STRING002 = String(PcbNode())
If (PcbNode() == 0) STRING002 = "A"
STRING005 = GetEnv(STRING002 + "RECNO")
STRING005 = ToInteger(STRING005)
DOpen 0, PPEPath() + "USER.DBF", 0
DOpen 2, PPEPath() + "WEAPONS.DBF", 0
DGo 0, STRING005
If ((DGet(0, "WEAPN1") < 1) && (DGet(0, "WEAPN2") > 1)) Then
DFCopy 0, "WEAPN1", 0, "WEAPN2"
DFCopy 0, "WEAPT1", 0, "WEAPT2"
DFCopy 0, "WEAPA1", 0, "WEAPA2"
DFCopy 0, "WEAPD1", 0, "WEAPD2"
DPut 0, "WEAPN2", 0
DPut 0, "WEAPT2", "NONE"
DPut 0, "WEAPA2", 0
DPut 0, "WEAPD2", 0
Endif
If (DGet(0, "WEAPN2") < DGet(0, "S_W_NUMBER")) Then
DFCopy 0, "WEAPN2", 0, "S_W_NUMBER"
DFCopy 0, "WEAPT2", 0, "S_W_NAME"
DFCopy 0, "WEAPA2", 0, "S_W_AMMO"
DFCopy 0, "WEAPD2", 0, "S_W_DAMAGE"
DPut 0, "S_W_NUMBER", 0
DPut 0, "S_W_NAME", "NONE"
DPut 0, "S_W_AMMO", 0
DPut 0, "S_W_DAMAGE", 0
Endif
If (DGet(0, "WEAPN1") > 0) Then
DGet 0, "WEAPA1", INTEGER001
INTEGER004 = 50 - INTEGER001
Endif
If (DGet(0, "WEAPN2") > 0) Then
DGet 0, "WEAPA2", INTEGER002
INTEGER004 = INTEGER004 + 50 - INTEGER002
Endif
If (DGet(0, "S_W_NUMBER") > 0) Then
DGet 0, "S_W_AMMO", INTEGER003
INTEGER004 = INTEGER004 + 50 - INTEGER003
Endif
:LABEL002
Cls
Newline
PrintLn "@X0C ╖ ╓ ╥ ╥ ╓╖ ╓╖ ╓╖ / ╓╖ ╖ ╓ ╓─ ╓╖ ╓╖ ╓╖ ╓╖ ╖ ╓ ╓╖ ╓╖ ╖╓ ╓╖@X07"
PrintLn "@X0C ║╥║ ║ ║ ╙╖ ║║ ║║ ╙╖ ║╥║ ╟ ╟╢ ╟╜ ║║ ║║ ║╥║ ║║ ╟╜ ╟< ╙╖@X07"
PrintLn "@X0C ╙╨╜ ╨ ╙─ ╙╜ ╙╜ ╜╙ ╙╜ ╙╨╜ ╙─ ╜╙ ╜ ╙╜ ╜╙ ╙╨╜ ╙╜ ╜╙ ╜╙ ╙╜@X07"
Newline
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
PrintLn "@X0E Welcome to Wilson's Weapon Works, where only the finest quality@X0F"
PrintLn "@X0E weapons are sold. We offer a wide range of weapons, ammunition, and@X0F"
PrintLn "@X0E weapon power units, and NEVER run out of stock. We also offer the@X0F"
PrintLn "@X0E best prices in town on used weapons!@X0F"
PrintLn "@X0E Be sure to check out our new Armor section, where we not only@X0F"
PrintLn "@X0E carry every type of armor from Life Pod Survival Suits (LPSS Level 2)@X0F"
PrintLn "@X0E to Open-Air powered armor, the BEST Armor the Imperium will allows to@X0F"
PrintLn "@X0E be sold legally, but offer full repair services for your current armor.@X0F"
Newline
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
PrintLn "@X0C (@X0EA@X0C)mmunition Sales (@X0ES@X0C)ell a Weapon (@X0EW@X0C)eapons Sales (@X0EQ@X0C)uit back to menu@X0F"
Newline
Print "@X0A ", Trim(DGet(0, "CASH"), " "), "@X0E Credits on hand - "
InputStr "@X0EPick a department, Soldier @X0A> _", STRING003, 10, 1, "ASWQ", 0 + 8
If (STRING003 == "") Goto LABEL002
Select Case (STRING003)
Case "A"
If (INTEGER004 < 1) Then
Backup 80
ClrEol
PrintLn "@X8CYOU DON'T NEED ANY AMMO@X0F"
Delay (2 * 182) / 10
Goto LABEL002
Endif
Goto LABEL003
Case "S"
If (DGet(0, "WEAPN1") + DGet(0, "WEAPN2") + DGet(0, "S_W_NUMBER") < 1) Then
Backup 80
ClrEol
PrintLn "@X0CYou don't have any weapons to sell!@X0F"
Delay (2 * 182) / 10
Goto LABEL002
Endif
Goto LABEL004
Case "W"
If (DGet(0, "CASH") < 250) Then
Backup 80
ClrEol
PrintLn "@X0AYou haven't got the cash to buy any weapons!@X0F"
Delay (2 * 182) / 10
Goto LABEL002
Endif
If (((DGet(0, "WEAPN1") > 0) && (DGet(0, "WEAPN2") > 0)) && (DGet(0, "S_W_NUMBER") > 0)) Then
Backup 80
ClrEol
PrintLn "@X0BYou can't carry another weapon - Sell one first@X0F"
Delay (2 * 182) / 10
Goto LABEL002
Endif
Goto LABEL005
Case "Q"
Goto LABEL008
End Select
:LABEL003
Cls
Newline
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
PrintLn "@X0C ╔═╗ ╔╦╗ ╔╦╗ ╦ ╦ ╔╗╔ ═╦═ ═╦═ ═╦═ ╔═╗ ╔╗╔ ╔═╗ ╔═╗ ╦ ╔═╗ ╔═╗ @X0F"
PrintLn "@X0C ╠═╣ ║║║ ║║║ ║ ║ ║║║ ║ ║ ║ ║ ║ ║║║ ╚═╗ ╠═╣ ║ ╠═ ╚═╗ @X0F"
PrintLn "@X0C ╩ ╩ ╩ ╩ ╩ ╩ ╚═╝ ╩╚╝ ═╩═ ╩ ═╩═ ╚═╝ ╩╚╝ ╚═╝ ╩ ╩ ╚══ ╚══ ╚═╝ @X0F"
Newline
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
PrintLn " @X0BWe offer the best deal in town on ammunition prices. All calibers, "
PrintLn " @X0Bratings, and voltages cost a mere credit each. You need @X0C", INTEGER004, "@X0B rounds."
Newline
If (DGet(0, "CASH") < INTEGER004) Then
PrintLn " @X0CYou don't have enough cash to buy a full charge...@X0F"
PrintLn
Delay (4 * 182) / 10
Goto LABEL002
Endif
PrintLn " @X02(@X0DM@X02)@X0Aax out Ammunition "
PrintLn " @X02(@X0CQ@X02)@X0Auit "
Newline
InputStr " Your Choice Soldier @X02> _", STRING003, 10, 1, "MQ", 0 + 8
Select Case (STRING003)
Case "M"
DPut 0, "CASH", DGet(0, "CASH") - INTEGER004
If (DGet(0, "WEAPN1") > 0) DPut 0, "WEAPA1", 50
If (DGet(0, "WEAPN2") > 0) DPut 0, "WEAPA2", 50
If (DGet(0, "S_W_NUMBER") > 0) DPut 0, "S_W_NUMBER", 50
INTEGER004 = 0
Goto LABEL002
Case "Q"
Goto LABEL002
End Select
:LABEL004
Cls
Newline
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
PrintLn "@X0C ═╦═ ╦ ╦ ╔═╗ ╔═╗ ╔═╗ ╔╦╗ ╔═╗ ╔═╗ ╦ ╦ @X0F"
PrintLn "@X0C ║ ╠═╣ ╠═ ╠═╣ ╠╦╝ ║║║ ║ ║ ╠╦╝ ╚╦╝ @X0F"
PrintLn "@X0C ╩ ╩ ╩ ╚══ ╩ ╩ ╩╚═ ╩ ╩ ╚═╝ ╩╚═ ╩ @X0F"
Newline
PrintLn "@X01 ≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡≡@X0F"
Newline
If (DGet(0, "WEAPN1") > 0) Then
DTop 2
DGo 2, DGet(0, "WEAPN1")
STRING006 = Trim(DGet(0, "WEAPT1"), " ") + "@X0E·························"
STRING006 = Left(STRING006, 25)
INTEGER008 = Random(4) + 6
INTEGER005 = (DGet(2, "COST") * 10) / INTEGER008
PrintLn
PrintLn "@POS:15@@X02(@X0DA@X02) @X0B ", STRING006, "@POS:25@@X02Worth@X0A ", INTEGER005
Endif
If (DGet(0, "WEAPN2") > 0) Then
DTop 2
DGo 2, DGet(0, "WEAPN2")
STRING007 = Trim(DGet(0, "WEAPT2"), " ") + "@X0E·························"
STRING007 = Left(STRING007, 25)
INTEGER008 = Random(4) + 6
INTEGER006 = (DGet(2, "COST") * 10) / INTEGER008
PrintLn "@POS:15@@X02(@X0DB@X02) @X0B ", STRING007, "@X02Worth@X0A ", INTEGER006
Endif
If (DGet(0, "S_W_NUMBER") > 0) Then
DTop 2
DGo 2, DGet(0, "S_W_NUMBER")
STRING008 = Trim(DGet(0, "S_W_NAME"), " ") + "@X0E·························"
STRING008 = Left(STRING008, 25)
INTEGER008 = Random(4) + 6
INTEGER007 = (DGet(2, "COST") * 10) / INTEGER008
PrintLn "@POS:15@@X02(@X0DC@X02) @X0B ", STRING008, "@X02Worth@X0A ", INTEGER007
Endif
Newlines 2
InputStr " @X0AWeapon to sell @X02(@X0CQ@X02)@X0Cuit @X02> _", STRING003, 10, 1, "ABCQ", 0 + 8
If (STRING003 == " ") Goto LABEL004
Select Case (STRING003)
Case "A"
DPut 0, "CASH", DGet(0, "CASH") + INTEGER005
Backup 80
ClrEol
PrintLn "@X0AYou now have@X0B ", Trim(DGet(0, "CASH"), " "), "@X0A credits@X0F"
Delay (2 * 182) / 10
DPut 0, "WEAPN1", 0
DPut 0, "WEAPT1", "NONE"
DPut 0, "WEAPA1", 0
DPut 0, "WEAPD1", 0
If ((DGet(0, "WEAPN1") < 1) && (DGet(0, "WEAPN2") > 1)) Then
DFCopy 0, "WEAPN1", 0, "WEAPN2"
DFCopy 0, "WEAPT1", 0, "WEAPT2"
DFCopy 0, "WEAPA1", 0, "WEAPA2"
DFCopy 0, "WEAPD1", 0, "WEAPD2"
DPut 0, "WEAPN2", 0
DPut 0, "WEAPT2", "NONE"
DPut 0, "WEAPA2", 0
DPut 0, "WEAPD2", 0
Endif
If (DGet(0, "WEAPN2") < DGet(0, "S_W_NUMBER")) Then
DFCopy 0, "WEAPN2", 0, "S_W_NUMBER"
DFCopy 0, "WEAPT2", 0, "S_W_NAME"
DFCopy 0, "WEAPA2", 0, "S_W_AMMO"
DFCopy 0, "WEAPD2", 0, "S_W_DAMAGE"
DPut 0, "S_W_NUMBER", 0
DPut 0, "S_W_NAME", "NONE"
DPut 0, "S_W_AMMO", 0
DPut 0, "S_W_DAMAGE", 0
Endif
Goto LABEL002
Case "B"
DPut 0, "CASH", DGet(0, "CASH") + INTEGER006
Backup 80
ClrEol
PrintLn "@X0AYou now have@X0B ", Trim(DGet(0, "CASH"), " "), "@X0A credits@X0F"
Delay (2 * 182) / 10
DPut 0, "WEAPN2", 0
DPut 0, "WEAPT2", "NONE"
DPut 0, "WEAPA2", 0
DPut 0, "WEAPD2", 0
If ((DGet(0, "WEAPN1") < 1) && (DGet(0, "WEAPN2") > 1)) Then
DFCopy 0, "WEAPN1", 0, "WEAPN2"
DFCopy 0, "WEAPT1", 0, "WEAPT2"
DFCopy 0, "WEAPA1", 0, "WEAPA2"
DFCopy 0, "WEAPD1", 0, "WEAPD2"
DPut 0, "WEAPN2", 0
DPut 0, "WEAPT2", "NONE"
DPut 0, "WEAPA2", 0
DPut 0, "WEAPD2", 0
Endif
If (DGet(0, "WEAPN2") < DGet(0, "S_W_NUMBER")) Then
DFCopy 0, "WEAPN2", 0, "S_W_NUMBER"
DFCopy 0, "WEAPT2", 0, "S_W_NAME"
DFCopy 0, "WEAPA2", 0, "S_W_AMMO"
DFCopy 0, "WEAPD2", 0, "S_W_DAMAGE"
DPut 0, "S_W_NUMBER", 0
DPut 0, "S_W_NAME", "NONE"
DPut 0, "S_W_AMMO", 0
DPut 0, "S_W_DAMAGE", 0
Endif
Goto LABEL002
Case "C"
DPut 0, "CASH", DGet(0, "CASH") + INTEGER007
Backup 80
ClrEol
PrintLn "@X0Ayou now have @X0B", Trim(DGet(0, "CASH"), " "), "@X0A credits@X0F"
Delay (2 * 182) / 10
DPut 0, "S_W_NUMBER", 0
DPut 0, "S_W_NAME", "NONE"
DPut 0, "S_W_AMMO", 0
DPut 0, "S_W_DAMAGE", 0
If ((DGet(0, "WEAPN1") < 1) && (DGet(0, "WEAPN2") > 1)) Then
DFCopy 0, "WEAPN1", 0, "WEAPN2"
DFCopy 0, "WEAPT1", 0, "WEAPT2"
DFCopy 0, "WEAPA1", 0, "WEAPA2"
DFCopy 0, "WEAPD1", 0, "WEAPD2"
DPut 0, "WEAPN2", 0
DPut 0, "WEAPT2", "NONE"
DPut 0, "WEAPA2", 0
DPut 0, "WEAPD2", 0
Endif
If (DGet(0, "WEAPN2") < DGet(0, "S_W_NUMBER")) Then
DFCopy 0, "WEAPN2", 0, "S_W_NUMBER"
DFCopy 0, "WEAPT2", 0, "S_W_NAME"
DFCopy 0, "WEAPA2", 0, "S_W_AMMO"
DFCopy 0, "WEAPD2", 0, "S_W_DAMAGE"
DPut 0, "S_W_NUMBER", 0
DPut 0, "S_W_NAME", "NONE"
DPut 0, "S_W_AMMO", 0
DPut 0, "S_W_DAMAGE", 0
Endif
Goto LABEL002
Case "Q"
Goto LABEL002
End Select
:LABEL005
Cls
StartDisp 1
PrintLn "@X0C ═╦═ ╦ ╦ ╔═╗ ╔═╗ ╔═╗ ╔╦╗ ╔═╗ ╔═╗ ╦ ╦ @X0F"
PrintLn "@X0C ║ ╠═╣ ╠═ ╠═╣ ╠╦╝ ║║║ ║ ║ ╠╦╝ ╚╦╝ @X0F"
PrintLn "@X0C ╩ ╩ ╩ ╚══ ╩ ╩ ╩╚═ ╩ ╩ ╚═╝ ╩╚═ ╩ @X0F"
PrintLn " @X8C# @X0BDESCRIPTION@POS:46@@X0CDAMAGE@POS:55@@X0AWEAPON COST"
PrintLn "@X06────────────────────────────────────────────────────────────────────────────"
DTop 2
:LABEL006
If (DEof(2)) Goto LABEL007
STRING004 = Trim(DGet(2, "DESCRIPT"), " ")
STRING004 = STRING004 + "·····································"
STRING004 = Left(STRING004, 40)
PrintLn "@X0C", DGet(2, "NUMBER"), "@X0E)@X0B@POS:7@", STRING004, "@X0C@POS:45@", DGet(2, "DAMAGE"), "@POS:55@@X0A", DGet(2, "COST")
If (!DEof(2)) DSkip 2, 1
Goto LABEL006
:LABEL007
Newline
Print "@X0AYou have@X0B ", Trim(DGet(0, "CASH"), " "), "@X0A credits - "
InputStr "@X0AYour Choice Soldier @X02(@X0CQ@X02)@X0Cuit @X02> _", STRING003, 10, 2, "0123456789Q", 0 + 8
If (STRING003 == "Q") Goto LABEL002
DTop 2
DGo 2, STRING003
If (DGet(0, "CASH") < ToInteger(DGet(2, "COST"))) Then
Backup 80
ClrEol
PrintLn "@X0CYou only have @X0E", Trim(DGet(0, "CASH"), " "), "@X0C credits@X0F"
Delay (2 * 182) / 10
Goto LABEL005
Endif
If (DGet(0, "WEAPN1") < 1) Then
DPut 0, "CASH", DGet(0, "CASH") - DGet(2, "COST")
DPut 0, "WEAPN1", ToInteger(STRING003)
DPut 0, "WEAPT1", DGet(2, "DESCRIPT")
DPut 0, "WEAPD1", DGet(2, "DAMAGE")
DPut 0, "WEAPA1", 50
Goto LABEL002
Endif
If (DGet(0, "WEAPN2") < 1) Then
DPut 0, "CASH", DGet(0, "CASH") - DGet(2, "COST")
DPut 0, "WEAPN2", ToInteger(STRING003)
DPut 0, "WEAPT2", DGet(2, "DESCRIPT")
DPut 0, "WEAPD2", DGet(2, "DAMAGE")
DPut 0, "WEAPA2", 50
Goto LABEL002
Endif
If (DGet(0, "S_W_NUMBER") < 1) Then
DPut 0, "CASH", DGet(0, "CASH") - DGet(2, "COST")
DPut 0, "S_W_NUMBER", ToInteger(STRING003)
DPut 0, "S_W_NAME", DGet(2, "DESCRIPT")
DPut 0, "S_W_DAMAGE", DGet(2, "DAMAGE")
DPut 0, "S_W_AMMO", 50
Goto LABEL002
Endif
:LABEL008
DCloseAll
End
;------------------------------------------------------------------------------
;
; Usage report (before postprocessing)
;
; ■ Statements used :
;
; 2 End
; 4 Cls
; 8 ClrEol
; 65 Goto
; 25 Let
; 2 Print
; 48 PrintLn
; 44 If
; 1 StartDisp
; 4 InputStr
; 9 Delay
; 17 Newline
; 1 Newlines
; 8 Backup
; 1 EndFunc
; 2 DOpen
; 1 DCloseAll
; 5 DTop
; 5 DGo
; 1 DSkip
; 3 DGet
; 66 DPut
; 32 DFCopy
;
;
; ■ Functions used :
;
; 12 *
; 12 /
; 21 +
; 7 -
; 16 ==
; 16 <
; 16 >
; 35 !
; 6 &&
; 4 Left()
; 10 Trim()
; 3 Random()
; 1 String()
; 2 PPEPath()
; 2 PcbNode()
; 1 GetEnv()
; 5 ToInteger()
; 2 DEof()
; 73 DGet()
;
;------------------------------------------------------------------------------
;
; Analysis flags : No flag
;
;------------------------------------------------------------------------------
;
; Postprocessing report
;
; 0 For/Next
; 0 While/EndWhile
; 23 If/Then or If/Then/Else
; 3 Select Case
;
;------------------------------------------------------------------------------
; AEGiS Corp - Break the routines, code against the machines!
;------------------------------------------------------------------------------